/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package wrapper;

import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;

/**
 *
 * @author Aurélie
 */
public class WrapperXmlFilm {

   // private File xmlFile = new File("C:\\Users\\Aurélie\\Documents\\NetBeansProjects\\ProjetWeb\\web\\xml\\hunger_games.xml");
     private File xmlFile = new File("C:\\Users\\asus\\Documents\\M1\\AppliWeb\\projet\\trunk\\ProjetWeb\\web\\xml\\hunger_games.xml");
    private Element racine;
    private Document document;

    public WrapperXmlFilm(File xmlFile) {
        this.xmlFile = xmlFile;
    }

    public WrapperXmlFilm() {
    }

    public boolean readXml(File inFile) {
        boolean result = false;
        SAXBuilder sxb = new SAXBuilder();

        try {
            document = sxb.build(inFile);
            racine = document.getRootElement();
            result = true;
        } catch (Exception e) {
            result = false;
        }
        return result;

    }

        /************************************** FILMS ***************************************/

     /**
     *
     * @return l id du film
     */
    public int getId() {
        Element courant = racine.getChild("Film");
        String Id = courant.getChild("Id").getValue();
        int i = Integer.parseInt(Id);

        return i;
    }
    
 
    /**
     * retrouver le nom du film dans le fichier xml
     * @return le nom du film
     */
    public String getTitreFilm() {
        String titreFilm;
        Element courant = racine.getChild("Film");
        titreFilm = courant.getAttribute("TranslatedTitle").getValue();

        return titreFilm;
    }

    /**
     * retrouver la description du film dans le fichier xml
     * @return la description du film
     */
    public List<String> getDescriptionFilm() {
        List<String> description = new ArrayList<String>();
        Element courant = racine.getChild("Film");
        String descriptionFilm = courant.getChild("Description").getValue();
        for (int i = 0; i < 1; i++) {
            String descriptionFilmMin = descriptionFilm.substring(0, 250);
            description.add(descriptionFilmMin);
        }
        return description;
    }

     /**
     * retrouver la description du film dans le fichier xml
     * @return la description du film
     */
    public List<String> getFullDescriptionFilm() {
        List<String> description = new ArrayList<String>();
        Element courant = racine.getChild("Film");
        String descriptionFilm = courant.getChild("Description").getValue();
        for (int i = 0; i < 1; i++) {
            description.add(descriptionFilm);
        }
        return description;
    }

    /**
     *
     * @return la note de chaque film
     */
    public String getNote() {
        Element courant = racine.getChild("Film");
        String noteFilm = courant.getAttribute("Rating").getValue();

        return noteFilm;
    }

    /**
     * 
     * @return liste des acteurs pour chaque film
     */
    public List<String> getActeurs() {
        List<String> listeActeurs = new ArrayList<String>();
        Element courant = racine.getChild("Film");
        courant = courant.getChild("Acteurs");
        List<Element> acteurFilm = courant.getChildren("Acteur");
        for (Element acteur : acteurFilm) {
            String acteurValue = acteur.getValue();
            listeActeurs.add(acteurValue);
        }
        return listeActeurs;
    }

    /**
     *
     * @return liste des realisateurs pour chaque film
     */
    public List<String> getRealisateurs() {
        List<String> listeRealisateurs = new ArrayList<String>();
        Element courant = racine.getChild("Film");
        courant = courant.getChild("Realisateurs");
        List<Element> realisateurFilm = courant.getChildren("Realisateur");
        for (Element realisateur : realisateurFilm) {
            String realisateurValue = realisateur.getValue();
            listeRealisateurs.add(realisateurValue);
        }
        return listeRealisateurs;
    }

    /**
     *
     * @return liste des categories pour chaque film
     */
    public List<String> getCategories() {
        List<String> listeCategories = new ArrayList<String>();
        Element courant = racine.getChild("Film");
        courant = courant.getChild("Categories");
        List<Element> categorieFilm = courant.getChildren("Categorie");
        for (Element categorie : categorieFilm) {
            String categorieValue = categorie.getValue();
            listeCategories.add(categorieValue);
        }
        return listeCategories;
    }

    /**
     *
     * @return l affiche de chaque film
     */
    public String getAffiche() {
        Element courant = racine.getChild("Film");
        String afficheFilm = courant.getChild("Affiche").getValue();

        return afficheFilm;
    }

   /**
     *
     * @return le prix dvd de chaque film
     */
    public int getPrixDVD() {
        Element courant = racine.getChild("Film");
        String prixDVDFilm = courant.getChild("PrixDVD").getValue();
        int i = Integer.parseInt(prixDVDFilm);
        return i;
    }

     /**
     *
     * @return le prix blueray de chaque film
     */
    public int getPrixBlueray() {
        Element courant = racine.getChild("Film");
        String prixBlueRay = courant.getChild("PrixBlueRay").getValue();
        int i = Integer.parseInt(prixBlueRay);

        return i;
    }
    /************************************** ACTEURS ****************************************/
    /**
     * @return nom acteur
     */
    public String getNomActeur() {
        Element courant = racine.getChild("Acteur");
        String nomActeur = courant.getChild("Nom").getValue();

        return nomActeur;
    }

    /**
     * @return description acteur
     */
    public List<String> getDescriptionActeur() {
        List<String> descriptionActeur = new ArrayList<String>();
        Element courant = racine.getChild("Acteur");
        String description = courant.getChild("Description").getValue();
        for (int i = 0; i < 1; i++) {
            descriptionActeur.add(description);
        }
        return descriptionActeur;
    }

      /**
     *
     * @return la photo des acteurs
     */
    public String getPhotoActeur() {
        Element courant = racine.getChild("Acteur");
        String photoActeur = courant.getChild("Photo").getValue();

        return photoActeur;
    }
    /************************************** STOCK ******************************************/

   /**
     *
     * @return l id du film
     */
    public int getIdFilm() {
        Element courant = racine.getChild("Stock");
        String idFilm = courant.getChild("IdFilm").getValue();
        int i = Integer.parseInt(idFilm);

        return i;
    }
    
      /**
     *
     * @return l id du film
     */
    public int getQuantiteDVD() {
        Element courant = racine.getChild("Stock");
        String quantiteDVD = courant.getChild("QuantiteDVD").getValue();
        int i = Integer.parseInt(quantiteDVD);

        return i;
    }
   /**
     *
     * @return l id du film
     */
    public int setQuantiteDVD() {
        Element courant = racine.getChild("Stock");
        String quantiteDVD = courant.getChild("QuantiteDVD").getValue();
        //String newQuantiteDVD = quantiteDVD - 10;
        Element updateQuantiteDVD = courant.setAttribute("QuantiteDVD", quantiteDVD);
        int i = Integer.parseInt(quantiteDVD);
        
        return i;
    }
    

}
